Field of the Invention
The disclosure relates generally to multithreading processors and allocate methods thereof, and more particularly it relates to processors for simultaneous multithreading and allocate methods thereof.
Description of the Related Art
Multi-threading is defined as a process whereby a physical processor simultaneously executes multiple threads, meaning that the physical core of the processor may be viewed as multiple logical cores being executed in parallel using multi-threading techniques. When multiple threads are executed by the resources of a single processor at the same time, the resources of a processor could be more efficiently allocated through simultaneous multithreading. Multiple threads could be executed simultaneously on a single processor by simultaneous multithreading, so that the powerful hardware resources of a modern processor, such as a decode unit, reservation station, and execution unit (such as the floating point unit, the fixed point instruction unit, the load/store unit, etc.), do not stay idle, and hence the efficiency of the processor can be improved.
When a processor is engaged in simultaneous multithreading, the hardware resources are mostly allocated by the rule of First-Come-First-Served (FCFS) Scheduling, or else the hardware resources are allocated equally to each thread. However, the static allocate method may not be suitable for some software applications. Therefore, the resources of a simultaneous multithreading processor should be allocated efficiently to improve the execution efficiency of the processor.